Collaborative traveling

ABSTRACT

An autonomous vehicle including a vehicle propulsion system, a braking system, a steering system, and a computing system that is in communication with the vehicle propulsion system, the braking system, and the steering system. The computing system includes a processor and memory that stores computer-executable instructions that, when executed by the processor, cause the processor to perform acts including setting as a destination for a trip of the autonomous vehicle. The destination for the trip of the autonomous vehicle being set as a location of a second autonomous vehicle at a specific time. The processor is further configured to select a route to the destination for the trip of the autonomous vehicle. The processor is yet further configured to control at least one of the vehicle propulsion system, the braking system, or the steering system to move the autonomous vehicle along the route as selected for the trip.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a divisional of U.S. patent application Ser. No.16/103,053, filed on Aug. 14, 2018, and entitled “COLLABORATIVETRAVELING”, the entirety of which is incorporated herein by reference.

BACKGROUND

An autonomous vehicle is a motorized vehicle that can operate withouthuman conduction. The autonomous vehicle can be controlled to travelfrom an initial location (e.g., a pick-up location, a current geographiclocation) to a destination. The autonomous vehicle can access roadwayinformation to determine a travel route from the source location to thedestination.

A destination is oftentimes a fixed location. The fixed location of adestination is commonly communicated by way of explicit input of anaddress or a location name. For example, when a passenger hails a ridevia an autonomous vehicle (or a ride via any ridesharing service), thepassenger typically communicates an address (e.g., 123 Pine Street) orlocation name (e.g., City Park) as the destination for a trip.

In some situations, however, a desired location of a destination maychange over time during a ride. By way of illustration, a passenger maybe taking the ride to meet a friend. When hailing the ride, the locationof the destination may have originally been 555 West Street; thisaddress may have been explicitly communicated when hailing the ride.During the ride, however, the desired location of the destination maychange to 222 East Road (e.g., the friend may have stopped at adifferent location and the passenger may desire to be dropped off atthat different location). Since an autonomous vehicle lacks a humandriver, the passenger is unable to verbally communicate the change inlocation of the destination. Rather, the passenger may need to provideexplicit input that includes the new address or location name to alterthe location of the destination, which can be difficult and timeconsuming (e.g., assuming that the passenger knows the new address orlocation name).

SUMMARY

The following is a brief summary of subject matter that is described ingreater detail herein. This summary is not intended to be limiting as toscope of the claims.

In accordance with various aspects, provided is an autonomous vehicle.The autonomous vehicle includes a vehicle propulsion system, a brakingsystem, a steering system, and a computing system that is incommunication with the vehicle propulsion system, the braking system,and the steering system. The computing system includes a processor andmemory that stores computer-executable instructions that, when executedby the processor, cause the processor to perform acts including settingas a destination for a trip of the autonomous vehicle. The destinationfor the trip of the autonomous vehicle being set as a location of asecond autonomous vehicle at a specific time. The processor is furtherconfigured to select a route to the destination for the trip of theautonomous vehicle. The processor is yet further configured to controlat least one of the vehicle propulsion system, the braking system, orthe steering system to move the autonomous vehicle along the route asselected for the trip.

Moreover, in accordance with various aspects, it is contemplated that amethod of controlling a dynamic location for a trip of a vehicle caninclude receiving an input for requesting the trip of the vehicle. Theinput specifies an identity of a user and a specific time. The methodmay further include setting, responsive to the input, the dynamiclocation for the trip of the vehicle as a location of the user at thespecific time. The method may yet further include causing the vehicle tomove to the dynamic location.

Further, in accordance with various aspects, it is contemplated that amethod of controlling a dynamic location for a trip of a vehicle caninclude transmitting to a user a suggestion for a destination. Thesuggestion can include a second user and a specific time. The method mayfurther include receiving an input requesting the trip of the vehicle.The input may specify setting a destination for the trip to meet thesecond user. The method may yet further include setting, responsive tothe input, the dynamic location for the trip of the vehicle as alocation of the second user at the specific time. The method may includecausing the vehicle to move to the dynamic location.

The above summary presents a simplified summary in order to provide abasic understanding of some aspects of the systems and/or methodsdiscussed herein. This summary is not an extensive overview of thesystems and/or methods discussed herein. It is not intended to identifykey/critical elements or to delineate the scope of such systems and/ormethods. Its sole purpose is to present some concepts in a simplifiedform as a prelude to the more detailed description that is presentedlater.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an exemplary autonomous vehicle.

FIG. 2 illustrates an exemplary autonomous vehicle.

FIG. 3 illustrates an exemplary server computing system.

FIG. 4 is a functional block diagram of an exemplary vehicle guidancesystem.

FIG. 5 illustrates an exemplary autonomous vehicle.

FIG. 6 is a flow diagram that illustrates an exemplary methodologyexecuted by an autonomous vehicle computing system that facilitatesmovement of the autonomous vehicle.

FIG. 7 is a flow diagram that illustrates an exemplary methodology thatfacilitates controlling a dynamic location for a trip of a vehicle.

FIG. 8 is a flow diagram that illustrates an exemplary methodology thatfacilitates controlling a dynamic location for a trip of a vehicle.

FIG. 9 illustrates an exemplary computing system.

DETAILED DESCRIPTION

Various technologies pertaining to dynamically routing an autonomousvehicle are now described with reference to the drawings, wherein likereference numerals are used to refer to like elements throughout. In thefollowing description, for purposes of explanation, numerous specificdetails are set forth in order to provide a thorough understanding ofone or more aspects. It may be evident, however, that such aspect(s) maybe practiced without these specific details. In other instances,well-known structures and devices are shown in block diagram form inorder to facilitate describing one or more aspects. Further, it is to beunderstood that functionality that is described as being carried out bycertain system components may be performed by multiple components.Similarly, for instance, a component may be configured to performfunctionality that is described as being carried out by multiplecomponents.

Moreover, the term “or” is intended to mean an inclusive “or” ratherthan an exclusive “or.” That is, unless specified otherwise, or clearfrom the context, the phrase “X employs A or B” is intended to mean anyof the natural inclusive permutations. That is, the phrase “X employs Aor B” is satisfied by any of the following instances: X employs A; Xemploys B; or X employs both A and B. In addition, the articles “a” and“an” as used in this application and the appended claims shouldgenerally be construed to mean “one or more” unless specified otherwiseor clear from the context to be directed to a singular form.

Further, as used herein, the terms “component” and “system” are intendedto encompass computer-readable data storage that is configured withcomputer-executable instructions that cause certain functionality to beperformed when executed by a processor. The computer-executableinstructions may include a routine, a function, or the like. It is alsoto be understood that a component or system may be localized on a singledevice or distributed across several devices. Further, as used herein,the term “exemplary” is intended to mean serving as an illustration orexample of something and is not intended to indicate a preference.

With reference now to FIG. 1, an exemplary autonomous vehicle 100 isillustrated. The autonomous vehicle 100 can navigate about roadwayswithout human conduction based upon sensor signals output by sensorsystems of the autonomous vehicle 100. The autonomous vehicle 100includes a plurality of sensor systems, namely, a sensor system 1 102, .. . , and a sensor system N 104, where N can be substantially anyinteger greater than one (collectively referred to herein as sensorsystems 102-104). The sensor systems 102-104 are of different types andare arranged about the autonomous vehicle 100. For example, the sensorsystem 1 102 may be a lidar sensor system and the sensor system N 104may be a camera (image) system. Other exemplary sensor systems includedin the sensor systems 102-104 can include radar sensor systems, GPSsensor systems, sonar sensor systems, infrared sensor systems, and thelike.

The autonomous vehicle 100 further includes several mechanical systemsthat are used to effectuate appropriate motion of the autonomous vehicle100. For instance, the mechanical systems can include, but are notlimited to, a vehicle propulsion system 106, a braking system 108, and asteering system 110. The vehicle propulsion system 106 may be anelectric motor, an internal combustion engine, a combination thereof, orthe like. The braking system 108 can include an engine brake, brakepads, actuators, and/or any other suitable componentry that isconfigured to assist in decelerating the autonomous vehicle 100. Thesteering system 110 includes suitable componentry that is configured tocontrol the direction of the movement of the autonomous vehicle 100.

The autonomous vehicle 100 additionally comprises a computing system 112that is in communication with the sensor systems 102-104, the vehiclepropulsion system 106, the braking system 108, and the steering system110. The computing system 112 includes at least one processor 114 andmemory 116 that includes computer-executable instructions that areexecuted by the processor 114. In an example, the processor 114 can beor include a graphics processing unit (GPU), a plurality of GPUs, acentral processing unit (CPU), a plurality of CPUs, anapplication-specific integrated circuit (ASIC), a microcontroller, aprogrammable logic controller (PLC), a field programmable gate array(FGPA), or the like.

The memory 116 includes a vehicle guidance system 118 that may beconfigured to dynamically control routing of the autonomous vehicle 100.More particularly, the vehicle guidance system 118 can control setting adynamic location for a trip of the autonomous vehicle 100. For example,the dynamic location for the trip of the autonomous vehicle 100 can be apick-up location for the trip of the autonomous vehicle 100. Pursuant toanother example, the dynamic location for the trip of the autonomousvehicle 100 can be a drop-off location for the trip of the autonomousvehicle 100. In accordance with another example, the dynamic locationfor the trip of the autonomous vehicle 100 can be a meeting location(e.g., a location at which the autonomous vehicle 100 is to meet asecond autonomous vehicle 122 and/or a user).

Moreover, in various embodiments, the vehicle guidance system 118 canset the dynamic location for the trip of the autonomous vehicle 100 as alocation of a second autonomous vehicle 122 at a specific time. In yetother embodiments, the vehicle guidance system 118 can set the dynamiclocation for the trip of the autonomous vehicle 100 as a location of auser at a specific time.

Further, the vehicle guidance system 118 can select a route from apick-up location (e.g., a geographic location at which a passenger ispicked up or to be picked up by the autonomous vehicle 100) and/or acurrent geographic location of the autonomous vehicle 100 to adestination for the trip of the autonomous vehicle 100. By way ofillustration, the vehicle guidance system 118 can select a route to thedynamic location for the trip of the autonomous vehicle 100, where thedynamic location is the destination. Thus, as opposed to conventionalapproaches where explicit input concerning a fixed location is specifiedfor a destination (e.g., a passenger hailing a ride indicates that thedestination is 333 Eagle Avenue), the vehicle guidance system 118enables the destination to be a location of a differing autonomousvehicle (e.g., the second autonomous vehicle 122) at a specific timeand/or a location of a user (e.g., a passenger of the second autonomousvehicle 122, a pedestrian, a user to be picked up by the autonomousvehicle 100, a user to be met, etc.) at a specific time.

The memory 120 additionally includes a control system 120 that isconfigured to receive an output of the vehicle guidance system 118 andis further configured to control at least one of the mechanical systems(the vehicle propulsion system 106, the braking system 108, and/or thesteering system 110) based upon the output of the vehicle guidancesystem 118. Thus, the control system 120 can control the mechanicalsystem(s) of the autonomous vehicle 100 to move the autonomous vehicle100 along the route as selected by the vehicle guidance system 118 forthe trip to the destination.

The autonomous vehicle 100 can also be in network communication with aserver computing system 124 (or a plurality of server computingsystems). The autonomous vehicle 100 can wirelessly communicate with theserver computing system 124. Data can be transmitted from the servercomputing system 124 to the autonomous vehicle 100. Further, data can betransmitted from the autonomous vehicle 100 to the server computingsystem 124. It is contemplated that the server computing system 124 cansimilarly communicate with the second autonomous vehicle 122 (as well assubstantially any number of other autonomous vehicles in a fleet).

While the vehicle guidance system 118 of the autonomous vehicle 100 isdescribed in some embodiments as controlling the setting of the dynamiclocation for the trip of the autonomous vehicle 100, according to otherembodiments, it is contemplated that the server computing system 124 canadditionally or alternatively control the setting of the dynamiclocation for the trip of the autonomous vehicle 100. Thus, the examplesdescribed herein can be extended to such scenarios where the servercomputing system 124 at least partially controls the setting of thedynamic location for the trip of the autonomous vehicle 100. Forinstance, the server computing system 124 can set a destination for atrip of the autonomous vehicle 100 and send a command specifying thedestination to the autonomous vehicle (e.g., to the vehicle guidancesystem 118).

The server computing system 124 can include at least one processor 126and memory 128 that includes computer-executable instructions that areexecuted by the processor 126. The memory 128 includes a location system130 that may be configured to track a location of the second autonomousvehicle 122 over time. Moreover, the location system 130 can storehistorical location data indicative of the tracked location of thesecond autonomous vehicle 122 over time. The location system 130 cansimilarly track other autonomous vehicles in the fleet over time(including the autonomous vehicle 100), and store correspondinghistorical location data. Accordingly, the vehicle guidance system 118of the autonomous vehicle 100 can interact with the server computingsystem 124 to obtain current location data of other autonomous vehicles,historical location data of other autonomous vehicles, anticipatedlocation data of other autonomous vehicles, and so forth.

Various exemplary scenarios are now described; in the followingexemplary scenarios, a destination for a trip of the autonomous vehicle100 is controlled based on a location of a second autonomous vehicle 122at a specific time. Thus, in the following exemplary scenarios, thedestination for the trip is the dynamic location. The vehicle guidancesystem 118 can set the destination for the trip of the autonomousvehicle 100. In particular, the destination for the trip of theautonomous vehicle 100 can be set as a location of the second autonomousvehicle 122 at a specific time. The vehicle guidance system 118 canfurther select a route to the destination for the trip of the autonomousvehicle 100. Additionally, the control system 120 can control thevehicle propulsion system 106, the braking system 108, and/or thesteering system 110 to move the autonomous vehicle 100 along the routeto the destination as selected for the trip.

According to an example, the vehicle guidance system 118 can control thedestination for the trip of the autonomous vehicle 100 to be a drop-offlocation for a differing trip of the second autonomous vehicle 122. Aninput (e.g., received by the autonomous vehicle 100, received by theserver computing system 124, provided by a mobile computing device of apassenger of the autonomous vehicle 100) can cause the destination forthe trip of the autonomous vehicle 100 to be set based on a drop-offlocation for a differing trip of the second autonomous vehicle 122.Thus, the vehicle guidance system 118 can control, based on the input,the destination for the trip of the autonomous vehicle 100 to be thedrop-off location of the differing trip of the second autonomous vehicle100. For instance, the drop-off location for the differing trip of thesecond autonomous vehicle 122 can be for a current trip of the secondautonomous vehicle 122, a prior trip of the second autonomous vehicle122, or a future trip of the second autonomous vehicle 122.

Following the foregoing example, pursuant to an illustration, theabove-noted input can indicate that the differing trip of the secondautonomous vehicle 122 is a current trip of the second autonomousvehicle 122. The current trip of the second autonomous vehicle 122 isongoing at a time of receipt of the input. For instance, the currenttrip can be ongoing when the input is received by the autonomous vehicle100, by the server computing system 124, or the like. Accordingly, thevehicle guidance system 118 can receive data indicating an anticipateddrop-off location for the current trip of the second autonomous vehicle122 from the server computing system 124 (e.g., from the location system130); the vehicle guidance system 118 can control the destination forthe trip of the autonomous vehicle 100 to similarly be the anticipateddrop-off location for the current trip of the second autonomous vehicle122 indicated in the data received from the server computing system 124.Moreover, data indicating a modification to the anticipated drop-offlocation for the current trip of the second autonomous vehicle 122 (ifany) can be communicated from the location system 130 of the servercomputing system 124 to the vehicle guidance system 118; accordingly,the vehicle guidance system 118 can dynamically adjust the destinationfor the trip of the autonomous vehicle 100 based on the modification tothe anticipated drop-off location. Likewise, data indicating an actualdrop-off location for the current trip of the second autonomous vehicle122 can be communicated (from the location system 130 of the servercomputing system 124 to the vehicle guidance system 118 of theautonomous vehicle 100) and used by the vehicle guidance system 118 todynamically adjust the destination for the trip of the autonomousvehicle 100.

According to another illustration, the input can indicate that thediffering trip of the second autonomous vehicle 122 is a future trip ofthe second autonomous vehicle 122. A time of receipt of the input isbefore commencement of the future trip of the second autonomous vehicle122. The future trip of the second autonomous vehicle 122 may bescheduled at the time of receipt of the input, for instance; however, itis contemplated that the future trip need not be scheduled at the timeof receipt of the input. Once the future trip of the second autonomousvehicle 122 begins (after receipt of the input), data indicating ananticipated drop-off location of the second autonomous vehicle 122 canbe received by the vehicle guidance system 118 of the autonomous vehicle100 from the location system 130 of the server computing system 124. Thevehicle guidance system 118 can control the destination for the trip ofthe autonomous vehicle 100 to similarly be the anticipated drop-offlocation. Similar to above, data indicating a modification to theanticipated drop-off location and/or an actual drop-off location for thetrip of the second autonomous vehicle 122 can be communicated to thevehicle guidance system 118 of the autonomous vehicle 100 and used todynamically adjust the destination for the trip of the autonomousvehicle 100.

Pursuant to yet another illustration, the input can indicate that thediffering trip of the second autonomous vehicle 122 is a prior trip ofthe second autonomous vehicle 122. The prior trip of the autonomousvehicle 122 ended before a time of receipt of the input. For instance,the input can specify setting the destination to the destination ofMary's trip in a particular autonomous vehicle (e.g., the secondautonomous vehicle 122) at noon yesterday. Accordingly, data indicatinga drop-off location of the second autonomous vehicle 122 that provided aride to Mary on the prior day at noon can be communicated from thelocation system 130 of the server computing system 124 to the vehicleguidance system 118 of the autonomous vehicle 100. Further, theautonomous vehicle 100 can control the destination for the trip of theautonomous vehicle 100 to similarly be the drop-off location specifiedin the received data.

It is contemplated that the second autonomous vehicle 122 can beselected from a fleet of autonomous vehicles in various manners whenbeing used to set the destination of the trip of the autonomous vehicle100. According to an example, an input (e.g., received by the autonomousvehicle 100, received by the server computing system 124, provided by amobile computing device of a passenger of the autonomous vehicle 100)can specify setting the destination for a trip to meet a passenger ofthe second autonomous vehicle 122. The passenger of the secondautonomous vehicle 122 may be riding in the second autonomous vehicle122 at time of receipt of the input, at a specific time specified in theinput, at a future time, or the like.

Moreover, it is also to be appreciated that the destination of the tripof the autonomous vehicle 100 need not be controlled to be a drop-offlocation of a differing trip of the second autonomous vehicle 122, butrather some other location on the differing trip of the secondautonomous vehicle 122. For instance, the destination of the trip of theautonomous vehicle 100 can be controlled to be the location of thesecond autonomous vehicle 122 at the specific time, where the locationof the second autonomous vehicle 122 is on a route of the differing tripof the second autonomous vehicle 122 prior to the second autonomousvehicle 122 reaching a drop-off location for the differing trip. Thus,the autonomous vehicle 100 can meet the second autonomous vehicle 122 ata location along the route (e.g., if the passenger of the autonomousvehicle 100 wants to switch from riding in the autonomous vehicle 100 toriding in the second autonomous vehicle 122 to join with passenger(s) ofthe second autonomous vehicle 122).

Further, it is contemplated that the destination for the trip of theautonomous vehicle 100 can be dynamically adjusted based on amodification to the location of the second autonomous vehicle 122 at aspecific time. While modifications to the drop-off location aredescribed above, it is also contemplated that other locationmodifications are intended to fall within the scope of the heretoappended claims (e.g., if the route of the trip of the second autonomousvehicle 122 is modified and the vehicle guidance system 118 iscontrolling the autonomous vehicle 100 to meet at a location along theroute of the second autonomous vehicle 122, then the meeting locationcan be dynamically adjusted).

Moreover, it is to be appreciated that the location of the secondautonomous vehicle 122 at the specific time can be an anticipatedlocation of the second autonomous vehicle 122 at a specific future time.For instance, the anticipated location of the second autonomous vehicle122 at the specific future time can an anticipated drop-off location ofthe second autonomous vehicle 122; yet, other anticipated locations andspecific future times are intended to fall within the scope of thehereto appended claims.

With reference to FIG. 2, illustrated is another example of theautonomous vehicle 100 and the server computing system 124. In theexample set forth in FIG. 2, the dynamic location for a trip of theautonomous vehicle 100 is set as a location of a user 200 at a specifictime. Thus, instead of using the location of the second autonomousvehicle 122 as set forth above in FIG. 1, the dynamic location can beset as the location of the user 200 at the specific time. It iscontemplated that the vehicle guidance system 118 of the autonomousvehicle 100 can set the dynamic location for the trip of the autonomousvehicle 100 as the location of the user 200 at the specific time (e.g.,using data received from the server computing system 124 indicating thelocation of the user 200 at the specific time). Additionally, oralternatively, it is to be appreciated that the server computing system124 can set the dynamic location for the trip of the autonomous vehicle100 as the location of the user 200 at the specific time.

Pursuant to an example, the location of the user 200 can be identifiedbased on a location of a mobile computing device of the user. Accordingto another example, the location of the user 200 can be identified basedon a location of an autonomous vehicle in which the user 200 is riding.

According to an illustration, the user 200 can be a passenger who ishailing a ride in the autonomous vehicle 100. Following thisillustration, the user 200 may be in motion after requesting a trip inthe autonomous vehicle 100. Thus, a pick-up location for the user 200can be set, responsive to an input requesting the trip in the autonomousvehicle 100, to be the location of the user 200 at a specific time(e.g., the anticipated location of the user 200 at the anticipated timeof pickup). The control system 120 can further cause the autonomousvehicle 100 to move to the pick-up location.

By way of another illustration, an input requesting a trip of theautonomous vehicle 100 for a passenger to be picked up can specify anidentity of a differing user (e.g., the user 200) at a specific time.For instance, the input can specify setting a destination for the tripto meet the user 200. Accordingly, the vehicle guidance system 118 canset the dynamic location for the trip of the autonomous vehicle 100 as alocation of the user 200 at the specific time. Further, the controlsystem 120 can cause the autonomous vehicle 100 to move to the dynamiclocation.

Now turning to FIG. 3, the server computing system 124 can include atleast one processor 126 and memory 128 that includes computer-executableinstructions that are executed by the processor 126. The memory 128includes the location system 130 configured to determine a location fora destination for a trip of a vehicle. The location system 130 mayinclude a destination locator component 300. The server computing system124 further include a data store 302 which may include historicallocation data 304. The historical location data 304 may include at leastone of tracked locations associated with a vehicle, tracked locationsassociated with a mobile computing device, or tracked locationsassociated with a user.

As discussed above, the destination locator component 300 is configuredresponsive to an input to determine a location for a destination of atrip of a vehicle. The destination locator component 300 may be furtherconfigured to transmit the location of the destination to the vehicle.Because the destination may not be a fixed a location, the destinationlocator component 300 is further configured to dynamically adjust thelocation of the destination based on a modification to the location ofthe destination (e.g., the second autonomous vehicle 122 or the user 200moves). The destination locator component 300 then transmits thedynamically adjusted location of the destination to the vehicle.

The destination may comprise a pick-up location (e.g., a geographiclocation at which a passenger is picked up or to be picked up) or adrop-off location (e.g., a geographic location at which a passenger isdropped off or to be dropped off). Additionally, as discussed above, thedestination may comprise a location of another vehicle at a specifictime or another user at a specific time.

Various exemplary scenarios are now described; in the followingexemplary scenarios, the vehicle comprises the autonomous vehicle 100 ofFIGS. 1-2. However, it is contemplated that the vehicle canadditionally, or alternatively, be human driven. For example, where thevehicle is human driven the destination locator component 300 may sendthe location of the destination to a route planning system (e.g., GPS,internet-based mapping service, etc.). The route planning system thendetermines a route to the destination for the human driver to take tothe destination. In another example, the autonomous vehicle is part of afleet of autonomous vehicles that may be in contact with each other.

In one embodiment, the input specifies the user 200 and a specific time.Responsive to the input, the destination locator component 300 isconfigured to set a dynamic location for the trip of the autonomousvehicle 100 as a location of the user 200 at the specific time.

As will be further described below, the specific time can comprise apast, present, or future time. The destination for the trip of thevehicle may be dynamically adjusted based on a modification to thelocation of the user at the specific time. Pursuant to one illustration,the location of the user 200 at the specific time is an anticipatedlocation of the user 200 at a specific future time. The specific futuretime is after receipt of the input specifying the user 200 and thespecific future time by the destination locator component 300.

Pursuant to another illustration, the location of the user at thespecific time is a prior location of the user at a specific prior time.The specific prior time is before receipt of the input specifying theuser and the specific prior time by the destination locator component300.

Pursuant to yet another illustration, the input is from a passenger whois hailing a ride in the autonomous vehicle 100. For example, thedestination locator component 300 then determines a location of thepassenger to set as a destination of a trip for the autonomous vehicle100. The destination locator component 300 then supplies thisdestination to the autonomous vehicle 100 causing the autonomous vehicle100 to move along a route to the destination. The passenger may be inmotion after requesting the ride in the autonomous vehicle 100. Thus,the destination locator component 300 may be further configured todynamically adjust the destination based on an adjusted location of theuser 200. The destination locator component 300 then supplies theadjusted destination to the autonomous vehicle 100.

In another example, the destination locator component 300 sets as adestination of a trip for the autonomous vehicle 100 an anticipatedlocation of the user 200 at an anticipated time of pickup. Theanticipated time of pickup can be selected by the user 200 or can bebased on how long it will take the vehicle to reach the user. Thedestination locator component 300 then transmits the anticipatedlocation to the autonomous vehicle 100 causing the autonomous vehicle100 to move along a route to the destination. The destination locatorcomponent 300 may be configured to dynamically adjust the destinationbased on modifications to the anticipated location of the user 200.

By way of another example, the input is from a second user riding in theautonomous vehicle 100 to go to a location of the user 200. Where aprior location of the user 200 is selected for the destination, thedestination locator component 300 may be configured to access thehistorical location data to determine a location of the user 200 at thespecific prior time. For example, the destination could be set asrestaurant Stephanie went to last Friday at 5 p.m. The destinationlocator component 300 then access the historical location data 304 todetermine the location of the restaurant Stephanie went to last Fridayat 5 p.m.

Pursuant to another example, an anticipated location of the user 200selected as the destination. The destination locator component 300 isconfigured to transmit the anticipated location as a destination for theautonomous vehicle 100. Data indicating modification to the anticipatedlocation for the user 200 is used by the destination locator component300 to dynamically adjust the location of the destination. Thedestination locator component 300 then transmits the adjusted locationto the destination.

In a yet further example, the location of the user 200 selected as adestination is a dynamic location of the user 200. The destinationlocator component 300 can determine the location of the user 200 at thetime the input is received and to set this location as the destination.The dispatch locator component 300 then transmits the destination to theautonomous vehicle 100. Data indicating a modification to the locationof the user 200 (if any) is used by the destination locator component300 to dynamically adjust the destination. The destination locatorcomponent 300 is configured to then transmit the adjusted destination tothe autonomous vehicle 100.

As shown in FIG. 4, the vehicle guidance system 118 may include a sourcelocator component 400, a destination creation component 402, a routecreation component 404, a route selection component 406, a passengersuggestion component 408, and/or a drop-off control component 410.

The source locator component 400 is configured to determine an initialgeolocation of the autonomous vehicle 100. The initial geolocation ofthe autonomous vehicle 100 may be determined based on the sensor systems102-104 arranged about the autonomous vehicle 100. Any system capable ofdetermining a geolocation of the autonomous vehicle 100 is considered.

The destination creation component 402 is configured to receive datafrom the server computing system 124 specifying the destination for theautonomous vehicle 100. The destination creation component 402 sets thegeolocation of the destination as an end point of a route to beselected. For instance, the data specifying the destination may bereceived when a passenger hails the autonomous vehicle 100. By way ofillustration, a passenger may input the destination into a mobilecomputing device which transmits the data specifying the destination tothe server computing system 124. The data specifying the destination forthe passenger, for example, can be transmitted from server computingsystem 124 to the autonomous vehicle 100.

The route creation component 404 is configured to interact with thedestination creation component 402 and to calculate at least one routefrom the initial location to the destination location. The computingsystem 116 may calculate the at least one route by accessing roadwayinformation (e.g., maintained by the server computing system 124) toobtain roadways to plot at least one route from the initial location tothe destination.

The route selection component 406 is configured to select a route forthe autonomous vehicle 100. The route selection component 406 can selectthe route from a list of at least one potential route calculated by theautonomous vehicle 100 via the route creation component 404 and/or theserver computing system 124.

The passenger suggestion component 408 is configured to suggest at leastone user a passenger can carpool with in an autonomous vehicle 100. Inone embodiment, if a passenger selects a suggested user, the autonomousvehicle 100 will be routed via the route creation component 404 to thesuggested user. In another embodiment, if a passenger selects asuggested user, an autonomous vehicle 100 the suggested user is ridingin will be routed to a pick-up location for the passenger.

In one embodiment, a user can be suggested based on a selected route forthe passenger and a selected route for the user having roadways incommon above a threshold amount. The threshold amount can vary based onthe length of the passenger's route and/or the user's route, the lengthof the roadways in common, preference of the passenger, gender of thepassenger and/or the user, age of the passenger or the user, time ofday, or the like. In another embodiment, a user can be suggested basedon the passenger and the user going to the same destination.

In a further embodiment, a user can be suggested based on historicaldata of the user. The historical data can include previous routestraversed by user or previous destinations of the user. In one version,a user is suggested based on a route of the passenger and a number ofhistorical routes above a threshold traveled by the user having roadwaysin common with the passenger. In another version, a user is suggestedbased on the number of times the user set the same destination as thedestination set by the passenger. In a yet further version, a user issuggested based on how recently the user traveled to the samedestination as the destination set by the passenger.

The passenger suggestion component 408 may be further configured tofilter a user(s) found by the aforementioned embodiments beforesuggesting a user to the passenger. In one embodiment, the passengersuggestion component 408 filters users based on a preference of thepassenger. The preference of the passenger can include favoriting auser(s), wanting only user(s) in a network of the passenger, wantingonly user(s) the passenger has previously carpooled with, or the like.Data specifying the passenger preference, for example, can betransmitted from a mobile computing device to the autonomous vehicle 100(e.g. directly via a short-range communication component of a mobilecomputing device or via the server computing system 124). In anotherembodiment, the passenger suggestion component 408 filters users basedon pattern data collected by the passenger suggestion component 408. Forexample, the pattern data may include previous user(s) the passenger hasrode with, feedback data from the passenger regarding user(s) thepassenger has rode with, suggested user(s) the passenger has selected,or the like.

The drop-off control component 410 is configured to control movement ofthe autonomous vehicle 100 at a drop-off location (e.g., a geographicallocation at which the passenger is to be dropped off by the autonomousvehicle 100). The drop-off control component 410 may halt directionalmovement of the autonomous vehicle 100 for a set period of time when theautonomous vehicle 100 reaches the drop-off location. Haltingdirectional movement of the autonomous vehicle 100 for the set period oftime allows the passenger to return to the autonomous vehicle 100 if thepassenger feels unsafe or uncomfortable travelling from the drop-offlocation to the destination.

The period of time may be based on a preference of the passenger of theautonomous vehicle 100, identification information about the passenger,the drop-off location, distance from the drop-off location to adestination, chronological information, or the like. For example, whenthe drop-off is at night (e.g., after 9 p.m. or after sunset), the setperiod of time may be longer than it would be during the day. In anotherexample, when the drop-off location is far from the destination, the setperiod of time will be longer than if the drop-off location was closerto the destination. In a yet further example, where the passenger is achild, the period of time may be longer than if the passenger was anadult.

The drop-off control component 410 may be further configured to monitorat least one of an interior of the autonomous vehicle 100 or anenvironment in a vicinity of an exterior of the autonomous vehicle 100when the autonomous vehicle 100 is at the drop-off location. Thedrop-off control component 410 may be further configured to track apassenger of the autonomous vehicle 100 as the passenger travels fromthe autonomous vehicle to an entrance for a destination (e.g. frontdoor, garage door, vestibule, etc.) when the autonomous vehicle 100 isat the drop-off location.

The drop-off control component 410 may receive data from the sensorsystem 102-104 which may be configured to capture the environment in thevicinity of the exterior of the autonomous vehicle 100 while thepassenger travels from the autonomous vehicle 100 to an entrance for thedestination. The drop-off control component 410 may further receive datafrom an in-cabin camera 502, shown in FIG. 5, configured to monitor aninterior of the autonomous vehicle 100. In one example, the in-cabincamera 502 continuously monitors the interior of the autonomous vehicle100 from the time the autonomous vehicle 100 reaches the drop-offlocation until the passenger reaches an entrance for the destination. Inanother embodiment, the in-cabin camera 502 monitors the interior of theautonomous vehicle 100 only while the passenger is in the autonomousvehicle 100.

As shown in FIG. 5, the autonomous vehicle 100 may further include atransceiver 500 and/or an in-cabin camera 502. The transceiver 500 isconfigured to transmit data from the autonomous vehicle 100 and/orreceive data at the autonomous vehicle 100. Thus, the autonomous vehicle100 can exchange data with the server computing system 124 and/or amobile computing device via the transceiver 500. The in-cabin camera 502is configured to monitor an interior of the autonomous vehicle 100. Inan embodiment, the in-cabin camera 502 is configured to remain activewhile a passenger is in the autonomous vehicle 100. In anotherembodiment, the in-cabin camera 502 is configured to activate based onan input from a passenger of the autonomous vehicle 100. The input cansignify that the passenger feels uncomfortable inside the autonomousvehicle 100.

FIGS. 6-8 illustrate exemplary methodologies relating to controlling anautonomous vehicle. While the methodologies are shown as being a seriesof acts that are performed in a sequence, it is to be understood andappreciated that the methodologies are not limited by the order of thesequence. For example, some acts can occur in a different order thanwhat is described herein. In addition, an act can occur concurrentlywith another act. Further, in some instances, not all acts may berequired to implement a methodology described herein.

Moreover, the acts described herein may be computer-executableinstructions that can be implemented by one or more processors and/orstored on a computer-readable medium or media. The computer-executableinstructions can include a routine, a sub-routine, programs, a thread ofexecution, and/or the like. Still further, results of acts of themethodologies can be stored in a computer-readable medium displayed on adisplay device, and/or the like.

Referring now to FIG. 6, an exemplary methodology for controllingoperation of an autonomous vehicle is illustrated. The methodology 600starts at 602, and at 604 a processor in the autonomous vehicle sets asa destination for a trip of the autonomous vehicle. The destination forthe trip of the autonomous vehicle is set as a location of a secondautonomous vehicle at a specific time. At 606, the processor selects aroute for the autonomous vehicle for the trip to the destination. At608, the autonomous vehicle is operated by controlling at least one of avehicle propulsion system, a braking system, or a steering system tomove the autonomous vehicle along the route as selected for the trip tothe destination. The methodology 600 concludes at 610.

In one embodiment, setting the destination for the trip of theautonomous vehicle further includes controlling the destination for theautonomous vehicle to be a drop-off location for a differing trip of thesecond autonomous vehicle. In another embodiment, an input causes thedestination for the trip of the autonomous vehicle to be set based on adrop-off location for a differing trip of the second autonomous. Settingthe destination for the trip of the autonomous vehicle further includescontrolling, based on the input, the destination for the trip of theautonomous vehicle to be the drop-off location for the differing trip ofthe second autonomous vehicle. In a version of this embodiment, theinput indicates that the differing trip of the second autonomous vehiclebe a current trip of the second autonomous. The current trip of thesecond autonomous vehicle is ongoing at a time of receipt of the input.In another version of this embodiment, the input indicates that thediffering trip of the second autonomous vehicle be a future trip of thesecond autonomous vehicle. A time of receipt of the input is beforecommencement of the future trip of the second autonomous vehicle. In ayet further version of this embodiment, the input indicates that thediffering trip of the second autonomous vehicle be a prior trip of thesecond autonomous vehicle. The prior trip of the second autonomousvehicle ended before a time of receipt of the input.

In another embodiment, setting the destination for the trip of theautonomous vehicle further includes controlling the destination for thetrip of the autonomous vehicle to be the location of the secondautonomous vehicle at the specific time. The location of the secondautonomous vehicle at the specific time is on a differing route for adiffering trip of the second autonomous vehicle prior to the secondautonomous vehicle reaching a drop-off location for the differing trip

In a further embodiment, the second autonomous vehicle is selected froma fleet of autonomous vehicles based on an input that specifies settingthe destination for the trip to meet a passenger of the secondautonomous vehicle. In a yet further embodiment, the destination for thetrip of the autonomous vehicle is dynamically adjusted based on amodification to the location of the second autonomous vehicle at thespecific time. In another embodiment, the location of the secondautonomous vehicle at the specific time is an anticipated location ofthe second autonomous vehicle at a specific future time

Referring now to FIG. 7, an exemplary methodology 700 for controlling adynamic location for a trip of a vehicle is illustrated. The methodologystarts at 702, and at 704 an input requesting the trip of the vehicle isreceived. The input specifies an identity of a user and a specific time.At 706, responsive to the input, the dynamic location for the trip ofthe vehicle is set as a location of the user at the specific time. At708, the methodology 700 includes causing the vehicle to move to thedynamic location. The methodology 700 concludes at 710.

In an embodiment, the user differs from a second user. The input furtherspecifies setting a destination for the trip to meet the user. The inputis requesting the trip of the vehicle for the second user to ride in thevehicle.

In another embodiment, the vehicle is an autonomous vehicle in a fleetof autonomous vehicles. In an embodiment, the dynamic location for thetrip of the vehicle is a pick-up location for a trip of the vehicle. Ina further embodiment, the dynamic location for the trip of the vehicleis a drop-off location for the trip of the vehicle.

In one embodiment, the location of the user at the specific time is ananticipated location of the user at a specific future time. The specificfuture time being after a time of receipt of the input. In anotherembodiment, the location of the user at the specific time is a priorlocation of the user at a specific prior time. The specific prior timebeing before a time of receipt of the input. In yet another embodiment,the dynamic location for the trip of the vehicle is dynamically adjustedbased on a modification to the location of the user at the specifictime.

Referring now to FIG. 8, an exemplary methodology 800 for controlling adynamic location for a trip of a vehicle is illustrated. The methodologystarts at 802, and 804 a suggestion for a destination is transmitted toa user. The suggestion includes a second user and a specific time. At806, an input requesting the trip of the vehicle is received. The inputspecifies setting a destination for the trip to meet the second user. At808, responsive to the input, the dynamic location for the trip of thevehicle is set as a location of the second user at the specific time. At810, the methodology 800 includes causing the vehicle to move to thedynamic location. The methodology 800 concludes at 812.

Referring now to FIG. 9, a high-level illustration of an exemplarycomputing device that can be used in accordance with the systems andmethodologies disclosed herein is illustrated. For instance, thecomputing device 900 may be or include the mobile computing device orthe computing system. The computing device 900 includes at least oneprocessor 902 that executes instructions that are stored in a memory904. The instructions may be, for instance, instructions forimplementing functionality described as being carried out by one or morecomponents discussed above or instructions for implementing one or moremethods described above. The processor 902 may be a GPU, a plurality ofGPUs, a CPU, a plurality of CPUs, a multi-core processor, etc. Theprocessor 902 may access the memory 904 by way of a system bus 906. Inaddition to storing executable instructions, the memory 904 may alsostore roadways, user identification, user preferences, etc.

The computing device 900 additionally includes a data store 910 that isaccessible by the processor 902 by way of the system bus 906. The datastore 910 may include executable instructions, roadways, useridentification, user preferences, etc. The computing device 900 alsoincludes an input interface 908 that allows external devices tocommunicate with the computing device 900. For instance, the inputinterface 908 may be used to receive instructions from an externalcomputer device, from a user, etc. The computing device 900 alsoincludes an output interface 912 that interfaces the computing device900 with one or more external devices. For example, the computing device900 may display text, images, etc. by way of the output interface 912.

Additionally, while illustrated as a single system, it is to beunderstood that the computing device 900 may be a distributed system.Thus, for instance, several devices may be in communication by way of anetwork connection and may collectively perform tasks described as beingperformed by the computing device 900.

Various functions described herein can be implemented in hardware,software, or any combination thereof. If implemented in software, thefunctions can be stored on or transmitted over as one or moreinstructions or code on a computer-readable medium. Computer-readablemedia includes computer-readable storage media. A computer-readablestorage media can be any available storage media that can be accessed bya computer. By way of example, and not limitation, suchcomputer-readable storage media can comprise RAM, ROM, EEPROM, CD-ROM orother optical disk storage, magnetic disk storage or other magneticstorage devices, or any other medium that can be used to carry or storedesired program code in the form of instructions or data structures andthat can be accessed by a computer. Disk and disc, as used herein,include compact disc (CD), laser disc, optical disc, digital versatiledisc (DVD), floppy disk, and blu-ray disc (BD), where disks usuallyreproduce data magnetically and discs usually reproduce data opticallywith lasers. Further, a propagated signal is not included within thescope of computer-readable storage media. Computer-readable media alsoincludes communication media including any medium that facilitatestransfer of a computer program from one place to another. A connection,for instance, can be a communication medium. For example, if thesoftware is transmitted from a web site, server, or other remote sourceusing a coaxial cable, fiber optic cable, twisted pair, digitalsubscriber line (DSL), or wireless technologies such as infrared, radio,and microwave, then the coaxial cable, fiber optic cable, twisted pair,DSL, or wireless technologies such as infrared, radio, and microwave areincluded in the definition of communication medium. Combinations of theabove should also be included within the scope of computer-readablemedia.

Alternatively, or in addition, the functionally described herein can beperformed, at least in part, by one or more hardware logic components.For example, and without limitation, illustrative types of hardwarelogic components that can be used include Field-programmable Gate Arrays(FPGAs), Application Program-specific Integrated Circuits (ASICs),Program-specific Standard Products (ASSPs), System-on-a-chip systems(SOCs), Complex Programmable Logic Devices (CPLDs), etc.

What has been described above includes examples of one or moreembodiments. It is, of course, not possible to describe everyconceivable modification and alteration of the above devices ormethodologies for purposes of describing the aforementioned aspects, butone of ordinary skill in the art can recognize that many furthermodifications and permutations of various aspects are possible.Accordingly, the described aspects are intended to embrace all suchalterations, modifications, and variations that fall within the spiritand scope of the appended claims. Furthermore, to the extent that theterm “includes” is used in either the details description or the claims,such term is intended to be inclusive in a manner similar to the term“comprising” as “comprising” is interpreted when employed as atransitional word in a claim.

What is claimed is:
 1. A method of controlling a dynamic location for atrip of a vehicle, comprising: receiving an input requesting the trip ofthe vehicle, the input specifies an identity of a user and a specifictime; setting, responsive to the input, the dynamic location for thetrip of the vehicle as a location of the user at the specific time; andcausing the vehicle to move to the dynamic location.
 2. The method ofclaim 1, wherein the user differs from a second user, the input furtherspecifies setting a destination for the trip to meet the user, and theinput is requesting the trip of the vehicle for the second user to ridein the vehicle.
 3. The method of claim 1, wherein the user differs froma second user, the user is suggested as a destination to the seconduser, the input further specifies selection of the suggested user as adestination for the trip to meet the user, and the input is requestingthe trip of the vehicle for the second user to ride in the vehicle. 4.The method of claim 1, wherein the vehicle is an autonomous vehicle in afleet of autonomous vehicles.
 5. The method of claim 1, wherein thedynamic location for the trip of the vehicle is a pick-up location forthe trip of the vehicle.
 6. The method of claim 1, wherein the dynamiclocation for the trip of the vehicle is a drop-off location for the tripof the vehicle.
 7. The method of claim 1, wherein the location of theuser at the specific time is an anticipated location of the user at aspecific future time, the specific future time being after a time ofreceipt of the input.
 8. The method of claim 1, wherein the location ofthe user at the specific time is a prior location of the user at aspecific prior time, the specific prior time being before a time ofreceipt of the input.
 9. The method of claim 1, wherein the dynamiclocation for the trip of the vehicle is dynamically adjusted based on amodification to the location of the user at the specific time.
 10. Themethod of claim 1, further comprising: selecting a route to the dynamiclocation for the trip of the vehicle.
 11. The method of claim 10,wherein causing the vehicle to move to the dynamic location comprisescontrolling at least one of a vehicle propulsion system of the vehicle,a braking system of the vehicle, or a steering system of the vehicle tomove the vehicle along the route to the dynamic location.
 12. A methodof controlling a dynamic location for a trip of a vehicle, comprising:transmitting to a user a suggestion for a destination, the suggestioncomprising a second user and a specific time; receiving an inputrequesting the trip of the vehicle, the input specifies setting adestination for the trip to meet the second user; setting, responsive tothe input, the dynamic location for the trip of the vehicle as alocation of the second user at the specific time; and causing thevehicle to move to the dynamic location.
 13. The method of claim 12,further comprising: generating the suggestion for the destination forthe user, the suggestion being generated based on at least of passengerswith whom the user previously traveled or feedback data from the userconcerning the passengers with whom the user previously traveled.
 14. Anautonomous vehicle, comprising: a computing system, comprising: aprocessor; and memory that stores computer-executable instructions that,when executed by the processor, cause the processor to perform actscomprising: receiving an input requesting a trip of the autonomousvehicle, the input specifies an identity of a user and a specific time;setting, responsive to the input, the dynamic location for the trip ofthe autonomous vehicle as a location of the user at the specific time;and causing the autonomous vehicle to move to the dynamic location. 15.The autonomous vehicle of claim 14, further comprising: a vehiclepropulsion system; a braking system; and a steering system; wherein theacts further comprise: selecting a route to the dynamic location for thetrip of the vehicle; and controlling at least one of the vehiclepropulsion system, the braking system, or the steering system to movethe vehicle along the route to the dynamic location.
 16. The autonomousvehicle of claim 14, wherein the user differs from a second user, theinput further specifies setting a destination for the trip to meet theuser, and the input is requesting the trip of the autonomous vehicle forthe second user to ride in the autonomous vehicle.
 17. The autonomousvehicle of claim 14, wherein the user differs from a second user, theuser is suggested as a destination to the second user, the input furtherspecifies selection of the suggested user as a destination for the tripto meet the user, and the input is requesting the trip of the autonomousvehicle for the second user to ride in the autonomous vehicle.
 18. Theautonomous vehicle of claim 14, wherein the location of the user at thespecific time is an anticipated location of the user at a specificfuture time, the specific future time being after a time of receipt ofthe input.
 19. The autonomous vehicle of claim 14, wherein the locationof the user at the specific time is a prior location of the user at aspecific prior time, the specific prior time being before a time ofreceipt of the input.
 20. The autonomous vehicle of claim 14, whereinthe dynamic location for the trip of the autonomous vehicle isdynamically adjusted based on a modification to the location of the userat the specific time.